const express = require('express')
const app = express()
const cors = require('cors')
const morgan = require('morgan')

// 跨域
app.use(cors())

app.use(express.json());

// 静态资源托管
app.use(express.static(__dirname+'/public'))

// 方式二：常规的操作日志，由于量比较大，还是保存在文件里面比较好（按日期保存到文件也不是不可以.）
var fs = require('fs')
var path = require('path')
// create a write stream (in append mode)
var accessLogStream = fs.createWriteStream(path.join(__dirname, 'access.log'), { flags: 'a' })
// setup the logger
app.use(morgan('combined', { stream: accessLogStream }))

let response = {
    status: 200,
    msg: '',
    data: {}
}

app.get('/', function (req, res) {
    console.log('request /')
    res.json({
        ...response,
        data: 'hellworld'
    })
})

// fyx-登录
let login = require('./views/fyx/login');
login(app, response)

// fyx-工单
let workerorder = require('./views/fyx/workerorder');
workerorder(app, response)

// fyx-电子合同
let signT = require('./views/fyx/sign');
signT(app, response)

// fyx-聊天会话
let chatT = require('./views/fyx/chat');
chatT(app, response)

// fyx-便签备忘录
let noteT = require('./views/fyx/note');
noteT(app, response)

// fyx-购车
let bugcar = require('./views/fyx/lookcar');
bugcar(app, response)

// fyx - 成绩查询
let queryResult = require('./views/fyx/queryresult');
queryResult(app, response)

// ai-会话
let aiSession = require('./views/ai/session');
aiSession(app, response)

app.get('/weather', function (req, res) {
    res.send('Hello World')
})

app.post('/login', function (req, res) {
    res.send('Hello World')
})

// 404处理
app.use((req, res, next) => {
    res.status(404).send('404 Not Found.')
})


// app.use(session({
//     // 对session id 相关的cookie 进行签名
//     secret: '20da3a00-3570-4e2c-90bb-3c1f273b1eda', // 在线生成uuid: https://createuuid.com/zh/
//     resave: false,
//     saveUninitialized: true, // 是否保存未初始化的会话
//     cookie: {
//         // secure: true, // 只有HTTPS协议才会存储session生成的cookie
//         // 二：session的过期时间
//         maxAge: 1000 * 60, // 设置 session 的有效时间，单位毫秒
//     },
//     store: MongoStore.create({
//         mongoUrl: 'mongodb://localhost:27017/test'
//     }) // 将数据库存储到mongodb存储库中
// }));



// // 这里暂时用get来注册
// // 访问： http://localhost:3004/register
// app.get('/register', (req, res) => {
//     // 1. 数据校验
//     // 2. 验证通过创建新用户
//     const user = {
//         name: 'zs',
//         password: '88888888'
//     }
//     // 3. 保存登录状态
//     // 一：获取cookie和设置cookie
//     // 存储session: 1. 生成session Id 2. 存储数据
//     // req.session.xxx = xxx 
//     // 获取session: 1.根据sessionid获取session容器中的数据
//     // req.session.xxx
//     req.session.user = user
//     console.log(req.session.user)
//     // 4. 跳转到首页
//     res.send('注册成功')
// })

// // 访问： http://localhost:3004/
// app.get("/", (req, res) => {
//     console.log('当前用户的session数据：', req.session.user);
//     if (req.session.user) {
//         res.send('首页数据加载成功')
//     } else {
//         res.send('当前未登录或登录失效，无法获取首页数据')
//     }
// })

// 统一错误码处理：写在所有路由和中间件之后
app.use((err, req, res, next) => {
    res.status(500).json({
        error: err.message
    })
})

app.listen(3004, () => console.log("server in http://localhost:3004"))